资源剖析参考

您可以在此找到资源剖析数据参考。使用资源剖析测量运行期间花费了多长时间在 Kanzi 应用程序中加载和部署资源与预设件。要详细了解资源剖析,请参阅测量资源加载和部署的时间

Kanzi 资源剖析数据包括:

资源剖析上下文

资源剖析上下文指执行触发资源加载或部署的代码路径范围。资源剖析上下文采样程序在执行采样程序定义的范围时创建资源剖析上下文,触发资源加载或部署。资源剖析上下文的持续时间和执行相应范围触发的资源加载或部署的持续时间相同。

在加载和部署资源的范围中,Kanzi 创建剖析资源加载和部署的采样程序 ResourceProfilingLoadContextResourceProfilingDeployContext

此表列出了资源剖析上下文的共同特性。所有上下文都有这些特性。

共同特性 描述 (Description)
ContextID 资源剖析上下文的唯一标识符。
使用标识符找到上下文创建的线程、父上下文和触发执行该上下文的线程。
ContextName 资源剖析上下文的名称。
DependenciesDuration Kanzi 主线程加载和部署该资源所依赖的各种资源所花的时间(以纳秒为单位)。
Duration Kanzi 主线程加载和部署该资源及其所依赖的各种资源所花的时间(以纳秒为单位)。
TimeStamp 进入资源剖析上下文范围的时间点。
使用时间戳找出不同的资源剖析上下文相对于其他资源剖析上下文创建的时间。
DependencyContexts 依赖上下文列表。
   

此表列出了剖析上下文类型及其具备的特性和共同特性。

资源剖析上下文 上下文名称 描述 (Description) 其他特性
主循环 MainLoop 当应用程序在 Kanzi 主循环迭代期间加载或部署资源时,剖析程序创建此上下文。 MainLoopCounter - 创建上下文的迭代时段。
资源获取 ResourceAcquire 当资源采集触发资源的加载和部署时,剖析程序创建此上下文。
  • AcquireAsynchronously 如果资源加载不同步,则为 "true",如果资源加载同步,则为 "false"
  • ResourceUrl - 应用程序正在获取的资源 kzb URL。
资源加载 (Resource loading) ResourceLoading 当应用程序加载资源时,剖析程序创建此上下文。
  • LoadedResourceID - 已加载资源的唯一标识符。使用此特性区分清空资源后再次加载的不同时机。
  • LoadedResourceType - 已加载资源的类型。
    例如,Kanzi.MaterialKanzi.PrefabTemplateKanzi.ResourceDictionaryKanzi.ShaderProgram
  • LoadedResourceUrl - 已加载资源的 URL。
  • ResourceLoadingDuration - 加载线程加载资源所花的时间(以纳秒为单位)。
资源部署 ResourceDeployment 当应用程序部署资源时,剖析程序创建此上下文。
  • DeployedResourceID - 已部署资源的唯一标识符。
  • DeployedResourceType - 已部署资源的类型。
  • DeployedResourceUrl - 已部署资源的 URL。
  • ResourceLoadingDuration - Kanzi 主线程部署资源所花的时间(以纳秒为单位)。
获取匿名资源 AcquireAnonymousResource 当应用程序获取没有资源 ID 的资源时,剖析程序创建此上下文。这种情况通常出现在获取资源字典时。 -
异步获取资源 AcquireResourcesAsynchronously 当应用程序异步获取多个资源时,剖析程序创建此上下文。
请参阅异步加载预设件资源
-
FinishingQueue: 处理任务 FinishingQueue::processTask Kanzi 处理加载或部署资源的任务时,剖析程序创建此上下文。此上下文通常是一个或多个资源加载或资源部署上下文的父上下文。 Description - 资源加载任务索引和任务队列大小的信息。
例如, "Task index 1, queue size 2"
预设件模板实例化 PrefabTemplateInstantiate 当预设件模板的实例化触发资源加载或部署时,剖析程序创建此上下文。 Description - 预设件实例的根节点。
例如,"Node root: Screen"
预设件模板节点实例化 PrefabTemplateNodeInstantiate 当预设件模板中的节点实例化触发资源加载或部署时,剖析程序创建此上下文。 Description - 预设件实例中的节点名称。
例如,"Node name: Viewport 2D"
节点附着 Node::attach 当节点附着到场景图触发资源加载或部署时,剖析程序创建此上下文。 Description - 附着的节点名称。
例如,"Node name: Plane"
消息触发器 MessageTrigger 当处理消息触发器导致资源加载或部署时,剖析系统创建此上下文。 Description - 触发器消息的资源。
例如,"Message source: Button 2D"
应用程序处理部署队列 Application::progressDeploymentQueue 当执行 Application::progressDeploymentQueue() 函数触发资源加载或部署时,剖析程序创建此上下文。此上下文始终是主循环上下文的子上下文。 -
应用程序处理部署队列重写(默认) Application::progressDeploymentQueueOverride(default) 当执行 Application::progressDeploymentQueueOverride() 函数的 Kanzi 实现触发资源加载或部署时,剖析程序创建此上下文。 -
等待加载队列任务完成 WaitingLoadingQueueTaskCompletion 当应用程序正在获取的资源正由其中一个加载线程加载,并且主线程需等待加载线程完成加载任务时,剖析程序创建此上下文。 -
       

资源剖析数据样本

资源剖析数据样本包括与被剖析资源有关的剖析信息摘要,包括获取、加载和部署资源的资源剖析上下文参考。

在资源剖析数据文件的部分 "ResourceProfilingDataSamples",您可以找到所有资源剖析数据样本的列表。请参阅记录资源剖析数据

使用资源剖析上下文的 ContextID 特性找到资源剖析程序创建资源剖析上下文的线程、父上下文和触发执行该上下文的线程。请参阅资源剖析上下文

此表列出了资源剖析数据样本的特性。

特性 (Attribute) 描述 (Description)
DeploymentDuration 部署资源所花的时间(以纳秒为单位)
LoadingDuration 加载资源所花的时间(以纳秒为单位)
ResourceID 资源剖析数据样本的唯一标识符
ResourceType 被剖析资源的类型
ResourceUrl 被剖析资源的 URL
AcquireContext 应用程序或 Kanzi 获取资源的资源剖析上下文
LoadingContext Kanzi 加载资源的资源剖析上下文
DeploymentContext Kanzi 部署资源的资源剖析上下文
   

这是滚动视图示例City 网格的资源剖析数据样本。

            “DeploymentDuration": “52920957",
            "LoadingDuration": “869380",
            "ResourceID": “233255432",
            "ResourceType": “Kanzi.Mesh",
            "ResourceUrl": “kzb://scroll_view/Mesh Data/City",
            "AcquireContext": {
                "AcquireAsynchronously": “true",
                "ContextID": “199287920",
                "ContextName": “ResourceAcquire",
                "DependenciesDuration": “0",
                "ResourceUrl": “kzb://scroll_view/Mesh Data/City",
                "TimeStamp": “107551499"
            },
            "LoadingContext": {
                "ContextID": “234230448",
                "ContextName": “ResourceLoading",
                "DependenciesDuration": “0",
                "LoadedResourceID": “233255432",
                "LoadedResourceType": “Kanzi.Mesh",
                "LoadedResourceUrl": “kzb://scroll_view/Mesh Data/City",
                "ResourceLoadingDuration": “869380",
                "TimeStamp": “626864207"
            },
            "DeploymentContext": {
                "ContextID": “234146616",
                "ContextName": “ResourceDeployment",
                "DependenciesDuration": “47990578",
                "DeployedResourceID": “233255432",
                "DeployedResourceType": “Kanzi.Mesh",
                "DeployedResourceUrl": “kzb://scroll_view/Mesh Data/City",
                "DeploymentDuration": “4930379",
                "TimeStamp": “647530216",
                "DependencyContexts": [
                    { ...}
            }

另请参阅

测量资源加载和部署的时间

资源

使用预设件

滚动视图示例